package practice.oop;

public class Father {
    /*
    没有重写的方法 子类调用时是直接走父类的方法
    当子类的成员变量与父类同名时，若对该成员变量进行操作的方法继承于父类，则改变和获取的是父类的成员变量。
    若对该成员变量进行操作的方法为子类所独有，或override父类，则改变和获取的是子类自己的成员变量。

    当子类拥有与父类同名的成员变量时，父类的成员变量并不会被覆盖，而是与子类的成员变量分别存储在不同的空间，其值仍然可以被改变和访问。
     */
    String name;
    int age;
    Father() {
    }
    void show() {
        System.out.println(name+"，"+this.getClass());
        System.out.println(name + "在表演");
    }
    void test() {
        System.out.println("父类在做测试");
    }
    public static void main(String[] args) {
        //System.out.println(1/0); //ArithmeticException异常
        System.out.println(1.0/0.0); //Infinity 表示无穷
        Son son = new Son("李白", 2);
        son.show();
        son.test();
    }
}

class Son extends Father {
    String name;

    Son(String name, int age) {
        this.name = name;
        this.age = age;
    }

    void test() {
        System.out.println(name+"子类在做测试");
    }
}
